package cn.iocoder.yudao.module.train.utils;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;

public class DateUtils {
    /**
     * 根据 LocalDateTime 类型的出生日期计算年龄
     *
     * @param birthDateTime 出生日期时间（LocalDateTime）
     * @return 年龄（int 类型）
     */
    public static int calculateAge(LocalDateTime birthDateTime) {
        if (birthDateTime == null) {
            throw new IllegalArgumentException("出生日期不能为空");
        }

        LocalDate birthDate = birthDateTime.toLocalDate(); // 取年月日部分
        LocalDate currentDate = LocalDate.now(); // 当前年月日

        if (birthDate.isAfter(currentDate)) {
            throw new IllegalArgumentException("出生日期不能在当前日期之后");
        }

        return Period.between(birthDate, currentDate).getYears();
    }

}
